home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1997 May & June / Amiga-CD 1997 #5-6.iso / pd-disketten / dms-gepackt / 10_95 / apd-10-95-2.dms / apd-10-95-2.adf / ARexx-Kurs / Listing2.rexx < prev    next >
OS/2 REXX Batch file  |  1995-09-12  |  3KB  |  88 lines

  1. /* GadTools3.rexx -- ein ListView-Beispiel */
  2. /* dieses Skript wurde etwas modifiziert */
  3. x = addlib("apig.library",0,-30,0)
  4. call addlib("rexxsupport.library",0,-30,0)
  5. call SET_APIG_GLOBALS()
  6.  
  7. /* Zeiger auf Workbench-Screen holen */
  8. scr          = LOCKPUBSCREEN("Workbench")
  9. scrvinfo     = GETVISUALINFO(scr)
  10. scrfont      = GETVALUE(scr,40,4,'p')
  11. glistpointer = ALLOCVEC(4,MEMF_CLEAR)
  12. conxgad      = CREATECONTEXT(glistpointer)  
  13.  
  14. previousgadget = conxgad; myid = 10
  15.  
  16. /* Zuerst ein NewGadget erzeugen und initialisieren */
  17. newgadx = MakeNewGadget(scrvinfo,scrfont,65,32,185,120,
  18.         ,"Das Listview-Gadget",PLACETEXT_ABOVE,myid,null())
  19.  
  20. /* Dann eine Exec-Liste reservieren und initialisieren */
  21. myexeclist = build_me_a_list()
  22. /* we now create the gadget, a LISTVIEW gadget */
  23. previousgadget = CREATEGADGET(LISTVIEW_KIND,
  24.        ,previousgadget,newgadx,GTLV_LABELS,myexeclist,
  25.        ,LAYOUTA_SPACING,1,TAG_DONE,0)
  26.  
  27. wintitle = "APIG v3.1 GadTools-Listview-Gadget-Beispiel"
  28. winidcmp = CLOSEWINDOW+GADGETUP+GADGETDOWN+MOUSEMOVE+INTUITICKS,
  29.            +NEWSIZE
  30. winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWSIZING+WINDOWDEPTH,
  31.            +GIMMEZEROZERO+ACTIVATE
  32.  
  33. portname = "apiggadt3_port"; p = openport(portname)
  34.  
  35. /* Fenster öffnen, conxgad zeigt auf unsere Gadgets  */
  36. w1  = OPENWINDOW(portname,0,30,500,200,0,1,winidcmp,winflags,
  37.                  ,wintitle,scr,0,null(),null(),conxgad)
  38.  
  39. call GT_REFRESHWINDOW(w1,null())  /* ist nötig! */
  40. rpw1 = GETWINDOWRASTPORT(w1)      /* zum Zeichen von Text */
  41.  
  42. exitme = 0; clicked = -1
  43. do while exitme = 0
  44.    x = waitpkt(portname)
  45.    do forever 
  46.      msg = getpkt(portname)
  47.      if msg = '0000 0000'x then leave
  48.      msgclass  = getarg(msg,0)
  49.      msgcode   = getarg(msg,1)
  50.      x = reply(msg,0)  
  51.      select
  52.        when msgclass = CLOSEWINDOW then exitme = 1
  53.        when msgclass = NEWSIZE then do
  54.          if clicked >= 0 then
  55.            call pitext(rpw1,290,50,("Zeile" clicked "gewählt"),
  56.                        ,1,0,JAM2,null())
  57.          call GT_REFRESHWINDOW(w1,null())  /* ist nötig! */
  58.        end
  59.        when msgclass = GADGETUP then do
  60.          clicked = msgcode
  61.          call cleareol(rpw1,290,50)
  62.          call pitext(rpw1,290,50,("Zeile" clicked "gewählt"),
  63.                      ,1,0,JAM2,null())
  64.        end
  65.        otherwise nop
  66.      end
  67.    end
  68. end
  69.  
  70. call CLOSEWINDOW(w1); call UNLOCKPUBSCREEN(null(),scr)
  71. call FREEVISUALINFO(scrvinfo); call FREEGADGETS(conxgad)
  72. call FREETHIS(newgadx); call FREEVEC(glistpointer)
  73. call FREE_EXEC_LIST(myexeclist,,1)
  74. exit
  75.  
  76. build_me_a_list:
  77.    /* our list structure always use ALLOCMEM */
  78.    /* so it can be freed properly.           */
  79.    mylist = ALLOCMEM(14,MEMF_CLEAR)
  80.  
  81.    call NEWLIST(mylist)
  82.    do x = 1 to 30
  83.       txt = "Dies ist Zeile " x-1
  84.       ptr_to_node_added = ADD_LIST_NODE(mylist,txt)
  85.    end
  86.  
  87. return mylist
  88.